package com.gitee.wsl.collections.delegate

/**
 * Map type that delegates to another implementation.
 *
 * @param <K>
 * Map key type.
 * @param <V>
 * Map value type.
 *
 * @author Matt Coley
</V></K> */
open class DelegatingMap<K, V>(protected open val delegate: Map<K, V>) : Map<K, V> by delegate {
//    override val size: Int
//        get() = delegate.size
//    override val keys: Set<K>
//        get() = delegate.keys
//    override val values: Collection<V>
//        get() = delegate.values
//    override val entries: Set<Map.Entry<K, V>>
//        get() = delegate.entries
//
//    override fun isEmpty(): Boolean {
//        return delegate.isEmpty()
//    }
//
//    override fun containsKey(key: K): Boolean = delegate.containsKey(key)
//
//    override fun containsValue(value: V): Boolean = delegate.containsValue(value)
//
//    override fun get(key: K): V? = delegate.get(key)
//
//    override fun equals(other: Any?): Boolean {
//        return delegate.equals(other)
//    }
//
//    override fun hashCode(): Int {
//        return delegate.hashCode()
//    }
//
//    override fun toString(): String {
//        return delegate.toString()
//    }
}

open class DelegatingMutableMap<K, V>(protected open val delegate: MutableMap<K, V>) : MutableMap<K, V> by delegate